from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
import pyperclip
import pyautogui
import time
import os

chrome_options = Options()
# chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_experimental_option('useAutomationExtension', False)

browser = webdriver.Chrome(options=chrome_options)
browser.get("http://p.ik123.com/bizhi/75491.html")  # 图片网站地址
browser.implicitly_wait(3)  # 隐藏式等待3s

pic = browser.find_elements_by_xpath("//div[@id='gui_left']//img")  # 根据 xpath 定位到图片 列表
pic_urls = [i.get_attribute('src') for i in pic]  # 得到图片的urls 列表
pic_names = [i.split('/')[-1:][0] for i in pic_urls]  # 得到图片的 图片名列表
pic_root = os.path.abspath(os.path.dirname(os.getcwd()))  # 得到当前根目录的 上一级目录
image_file = os.path.join(pic_root, 'image')  # 新建一个文件夹 ，和当前项目同级目录
if not os.path.exists(image_file):
    os.makedirs(image_file)
# pic_rejoin_path = [os.path.join(image_file,i) for i in pic_names]   # 新建
pic_rejoin_path = []
for i in pic_names:
    x = os.path.join(image_file, i)
    pic_rejoin_path.append(x)
print(pic_rejoin_path)

for i in range(len(pic)):
    actions = ActionChains(browser)
    # 找到图片后右键单击图片
    actions.move_to_element(pic[i])  # 定位到元素
    actions.context_click(pic[i])  # 点击右键
    actions.perform()  # 执行
    pyautogui.typewrite(['v'])  # v 是保存的快捷键
    time.sleep(1)  # 等待一秒
    pyperclip.copy(pic_rejoin_path[i])  # 把 指定的路径拷贝到过来
    time.sleep(1)  # 等待一秒
    pyautogui.hotkey('ctrlleft', 'v')  # 粘贴
    time.sleep(0.5)  # 等待一秒
    pyautogui.press('enter')
    time.sleep(0.5)  # 等待一秒
    print("图片下载完成:%s" % pic_urls[i])
